Various business organizations today utilize business process management (BPM) to efficiently manage multiple business processes. The business processes/tasks can be a banking service offered to a client, a day to day business processes executed at an organization and so forth. With emerging markets and competitive business in place, the business processes have become more complex in recent times. To further optimize these complex and competitive business processes, BPM has been integrated with electronic processing (software) solutions to streamline and automate the business processes involved.
Typically, business processes comprises real-time and batch activities. A real-time activity is a continuous process in which the input data is processed as soon as the real-time activity is triggered i.e. there is ideally no delay between the initiation and processing of the task. For example, in a fund transaction system, as soon as an end-user inputs his credential and submits a request for the fund transfer, the transaction system initiates the processing. Thereafter, the transaction system validates the credential of the end-user and subsequently authorizes the fund transfer in case all the predefined conditions of the activity are valid. In such an activity the time delay between the input and output (transfer of fund) is minimal. On the other hand, a batch activity is a group of processes usually invoked through a pre-determined condition, such as a predefined time (end of every month, a fixed date), a trigger from a particular event. Moreover, the processing of the batch activity is not instantaneous as in case of a real-time activity. For example, in a monthly statement generation activity, in which the monthly statement of a particular end-user is generated only after all transaction reports of the end-user have been collected over a predefined period of time (30 days). A batch activity is an efficient way of processing large volume of data and is actively employed for systems requiring systematic processing of large volume of data, such as payroll system, examination system, and billing system.
Presently, in a processing environment a real-time activity and a batch activity are seen as different activities, and as a result they are processed in isolation of one another. There are scenarios in which the business process requires the real-time activity and the batch activity to be integrated and subsequently be processed in a single development environment. To achieve the abovementioned functionality, various techniques have been employed in the art. The primary technique employed is to servicify a batch activity, wherein a batch script is created to trigger a batch activity encountered at the single development environment. Therefore, once a batch activity is encountered in a business process (including both real-time and batch activities), a batch script invokes the batch activity for further processing in a parallel interface. This methodology requires creation of individual script to execute a particular batch activity.
Alternately, asynchronous invocation may be used to invoke a batch activity in a single development environment. In asynchronous invocation an external message is send to the batch interface in order to execute the batch activity. The message trigger may utilize Java Message Service (JMS) to communicate between the two interfaces. This methodology also requires creation of a particular message to trigger the batch activity. However, in both the techniques, skilled person are required to create respective batch script and message in order to execute a batch activity in a single environment. Furthermore, it is difficult to monitor the status of the batch activity in case of asynchronous invocation, as because once a message is sent from the real-time process to the batch interface both the systems work in isolation.
In light of abovementioned disadvantages, there is a need for a method and a system to integrate real-time activity and batch activity in a unified environment. Further, there is a need to automate the processing of real-time and batch activity with minimal human intervention.